<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // for..of为什么不能遍历对象：因为对象上面没有(Symbol.iterator)方法
    console.log(Array.prototype);
    console.log(String.prototype);
    console.log(Set.prototype);
    console.log(Map.prototype);
    console.log(Object.prototype);
</script>
<script>
    // iterator原理：
    // 当可遍历对象被for...of遍历的时候，[Symbol.iterator]()就会被调用，返回一个iterator对象。
    var arr = [1, 2, 3, 4]
    let item = arr[Symbol.iterator]()
    console.log(item);
    console.log(item.next());
    console.log(item.next());
    console.log(item.next());
    console.log(item.next());
    console.log(item.next());
    // for..of的原理：当可遍历对象被for...of遍历的时候，[Symbol.iterator]()就会被调用，返回一个iterator对象。
    // iterator对象里面有一个next()方法，调用next()方法，返回一个对象，对象里面有value和done属性，一直到
    // done为true的时候结束执行
</script>

</html>